package com.yanqu.road.entity.log.foxcard;

import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.activity.foxcard.FoxConsumeCard;
import com.yanqu.road.entity.activity.foxcard.FoxEffectCard;
import com.yanqu.road.entity.activity.foxcard.FoxHandCard;
import com.yanqu.road.entity.log.ServerBaseLog;
import com.yanqu.road.entity.log.maidian.BaseLogEntity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@FieldTypeAnnotation(tableName = "t_l_ck_activity_foxcard_show_card", desc = "黑狐入侵出牌", autoSave = true, dataUpload = true, eventName = "red_blackplay",uploadCk = true)
public class LogFoxCardShowCard extends ServerBaseLog {

    @FieldTypeAnnotation(desc = "活动ID", isIndex = true, dataAttribute = "activityid")
    private int activityId;
    @FieldTypeAnnotation(desc = "玩家ID", isIndex = true)
    private long userId;
    @FieldTypeAnnotation(desc = "关卡id", dataAttribute = "red_blacklev")
    private int stageId;
    @FieldTypeAnnotation(desc = "回合数", dataAttribute = "red_blackid")
    private int round;
    @FieldTypeAnnotation(desc = "打出的牌型", dataAttribute = "red_blacktype")
    private int comboId;
    @FieldTypeAnnotation(desc = "打出的手牌", dataAttribute = "red_blackplaymap", saveJson = true)
    private List<FoxHandCard> handCards = new ArrayList<>();
    @FieldTypeAnnotation(desc = "出牌次数", dataAttribute = "red_blackplaynum")
    private int showCardTimes;
    @FieldTypeAnnotation(desc = "弃牌次数", dataAttribute = "red_blackgiveupnum")
    private int dropCardTimes;
    @FieldTypeAnnotation(desc = "出牌次数上限", dataAttribute = "red_blackplaymax")
    private int showCardTimesMax;
    @FieldTypeAnnotation(desc = "弃牌次数上限", dataAttribute = "red_blackgiveupmax")
    private int dropCardTimesMax;
    @FieldTypeAnnotation(desc = "利息金币", dataAttribute = "red_blackinterest")
    private int interestGold;
    @FieldTypeAnnotation(desc = "出牌次数金币", dataAttribute = "red_blacktime")
    private int showTimesGold;
    @FieldTypeAnnotation(desc = "通关金币", dataAttribute = "red_blacksuccess")
    private int passGold;
    @FieldTypeAnnotation(desc = "当前金币", dataAttribute = "red_blackcoin")
    private int gold;
    @FieldTypeAnnotation(desc = "奖励", dataAttribute = "red_blackget")
    private String reward;
    @FieldTypeAnnotation(desc = "累计伤害量")
    private long damageAmount;
    @FieldTypeAnnotation(desc = "累计伤害量", dataAttribute = "red_blacksumhurt2")
    private String damageAmount2 = "0";
    @FieldTypeAnnotation(desc = "本次伤害")
    private long damageAdd;
    @FieldTypeAnnotation(desc = "本次伤害", dataAttribute = "red_blackhurt2")
    private String damageAdd2;
    @FieldTypeAnnotation(desc = "最大单次伤害")
    private long maxOnceDamage;
    @FieldTypeAnnotation(desc = "最大单次伤害", dataAttribute = "red_blackmaxhurt2")
    private String maxOnceDamage2;
    @FieldTypeAnnotation(desc = "当前boss限制", dataAttribute = "red_blackboss")
    private int bossLimit;
    @FieldTypeAnnotation(desc = "出牌结果 0继续出牌 1胜利 2失败 3进入无尽模式 4通关", dataAttribute = "red_blackresult")
    private int result;
    @FieldTypeAnnotation(desc = "时间")
    private Date logTime;

    public LogFoxCardShowCard(int activityId, long userId, int stageId, int round) {
        this.activityId = activityId;
        this.userId = userId;
        this.stageId = stageId;
        this.round = round;
        this.reward = "";
        this.logTime = new Date();
    }

    @Override
    public long getUserId() {
        return userId;
    }

    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        this.activityId = activityId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public int getStageId() {
        return stageId;
    }

    public void setStageId(int stageId) {
        this.stageId = stageId;
    }

    public int getRound() {
        return round;
    }

    public void setRound(int round) {
        this.round = round;
    }

    public int getComboId() {
        return comboId;
    }

    public void setComboId(int comboId) {
        this.comboId = comboId;
    }

    public List<FoxHandCard> getHandCards() {
        return handCards;
    }

    public void setHandCards(List<FoxHandCard> handCards) {
        this.handCards = handCards;
    }

    public int getShowCardTimes() {
        return showCardTimes;
    }

    public void setShowCardTimes(int showCardTimes) {
        this.showCardTimes = showCardTimes;
    }

    public int getDropCardTimes() {
        return dropCardTimes;
    }

    public void setDropCardTimes(int dropCardTimes) {
        this.dropCardTimes = dropCardTimes;
    }

    public int getShowCardTimesMax() {
        return showCardTimesMax;
    }

    public void setShowCardTimesMax(int showCardTimesMax) {
        this.showCardTimesMax = showCardTimesMax;
    }

    public int getDropCardTimesMax() {
        return dropCardTimesMax;
    }

    public void setDropCardTimesMax(int dropCardTimesMax) {
        this.dropCardTimesMax = dropCardTimesMax;
    }

    public int getInterestGold() {
        return interestGold;
    }

    public void setInterestGold(int interestGold) {
        this.interestGold = interestGold;
    }

    public int getShowTimesGold() {
        return showTimesGold;
    }

    public void setShowTimesGold(int showTimesGold) {
        this.showTimesGold = showTimesGold;
    }

    public int getPassGold() {
        return passGold;
    }

    public void setPassGold(int passGold) {
        this.passGold = passGold;
    }

    public String getReward() {
        return reward;
    }

    public void setReward(String reward) {
        this.reward = reward;
    }

    public long getDamageAmount() {
        return damageAmount;
    }

    public void setDamageAmount(long damageAmount) {
        this.damageAmount = damageAmount;
    }

    public long getDamageAdd() {
        return damageAdd;
    }

    public void setDamageAdd(long damageAdd) {
        this.damageAdd = damageAdd;
    }

    public long getMaxOnceDamage() {
        return maxOnceDamage;
    }

    public void setMaxOnceDamage(long maxOnceDamage) {
        this.maxOnceDamage = maxOnceDamage;
    }

    public int getBossLimit() {
        return bossLimit;
    }

    public void setBossLimit(int bossLimit) {
        this.bossLimit = bossLimit;
    }

    public int getResult() {
        return result;
    }

    public void setResult(int result) {
        this.result = result;
    }

    public Date getLogTime() {
        return logTime;
    }

    public void setLogTime(Date logTime) {
        this.logTime = logTime;
    }

    public int getGold() {
        return gold;
    }

    public void setGold(int gold) {
        this.gold = gold;
    }

    public String getDamageAmount2() {
        return damageAmount2;
    }

    public void setDamageAmount2(String damageAmount2) {
        this.damageAmount2 = damageAmount2;
    }

    public String getDamageAdd2() {
        return damageAdd2;
    }

    public void setDamageAdd2(String damageAdd2) {
        this.damageAdd2 = damageAdd2;
    }

    public String getMaxOnceDamage2() {
        return maxOnceDamage2;
    }

    public void setMaxOnceDamage2(String maxOnceDamage2) {
        this.maxOnceDamage2 = maxOnceDamage2;
    }
}
